Business Intelligence generally refers to a category of software systems and applications used to improve business enterprise decision-making and governance. These software tools provide techniques for analyzing and leveraging enterprise applications and data. They are commonly applied to financial, human resource, marketing, sales, service provision, customer, and supplier analyses. More specifically, Business Intelligence tools can include reporting and analysis tools to analyze, forecast and present information, content delivery infrastructure systems to deliver, store and manage reports and analytics data warehousing systems to cleanse and consolidate information from disparate sources, integration tools to analyze and generate workflows based on enterprise systems and tools that work with database management systems (“DBMS”) to organize, store, retrieve and manage data in databases, such as relational. Online Transaction Processing (“OLTP”) and Online Analytic Processing (“OLAP”) databases.
In many organizations data is stored in multiple data sources that are not readily compatible. Data sources may be as diverse as relational, OLTP and OLAP databases spreadsheets XMI files, text files, and groupware files, among, others. Each type of data source may be used for different purposes with, in general, OLTP databases used to store transaction-oriented data, relational databases used to store and organize data according to data relations, OLAP databases used to store data requiring analytical processing, and spreadsheets, XMI, files, text files, and groupware files used to store data for a variety of applications and needs.
For example, organizational data for a financial institution may be distributed among an OLAP database for storing real-time financial transactions, a relational database for storing data pertaining to customers, an OLAP database for storing financial history data according to stock, geographical regions, and time period, and various spreadsheets storing performance figures for each member of the financial team. Retrieving data for analysis may therefore require multiple queries to multiple data sources.
There are a number of commercially available tools that can retrieve data from multiple data sources automatically. These tools can also integrate the data into a single “report” to facilitate analysis of the retrieved data. For example, Business Objects™ of San Jose Calif., sells a number of widely used report generation tools, including Crystal Reports™ Business Objects Voyager™, Business Objects Web Intelligence™, and Business Objects Enterprise™. The data is typically retrieved in response to computer executable instructions and processed in accordance with a report schema. The report schema specifies the form in which the data is presented in the report.
As such, a report is specifically designed to facilitate working with external data sources. In addition to information regarding external data source connection drivers, the report may specify advanced filtering of data, information for combining data from different external data sources, information for updating join structures and relationships in report data, and instructions including logic to support a more complex internal data model (that may include additional constraints, relationships, and metadata). Unlike other non-report documents that are constructed without the automatic retrieval of data from a data source but may optionally import external data within a document, e.g., word processor and presentation documents, a report by design is primarily a medium for accessing, formatting transforming, and/or presenting external data.
Data in a report may be formatted in a variety of structures, including, but not limited to, table structures, sections, cross-tables, synchronized tables, sub-reports, hybrid charts, and the like. A report can interpret the data therein and perform calculations based on the original (or a redefined) data structure and meaning of the imported data as well as on pre-existing relationships between elements of imported data. The report generation tools may support a range of calculation models.
Report generation tools may also include tools for processing and distributing reports. For example. Business Objects Enterprise™ from Business Objects™. San Jose, Calif. includes features for scheduling multiple reports simultaneously so that they are processed and delivered together to a specified recipient. The processing of reports can include the merging of dynamic documents, i.e., documents containing information that is updated on a periodic or frequent basis, with static documents, such as PDF documents, word processor documents, and the like. This process can be complicated by the need to provide each user with their own report with suitable data intended specifically for that user.
Using the financial institution example above, consider a financial advisor trying to inform clients of their holdings. The financial advisor periodically sends each one of its clients a letter with financial advice, boilerplate information such as disclaimers of the type “past performance is not an indicator of future returns,” and a detailed summary of their holdings. Now suppose the financial advisor would like to customize the detailed summary of each client's holdings to only include information for those client's stocks that outperformed a given metric. This would require the reporting generation tool to customize the delivery of data in the report for each user.
Currently-available report generation tools have limited merging capabilities. While they are able to merge static and dynamic objects into a single report, there is no report generation tool available today that offers users the capability to condition the delivery of data in the report for each user. That is, there is no report generation tool available today that offers users the capability to select portions of the data and other dynamic content in the report for each user. There also is no report generation tool that provides users a delivery rule framework for conditioning the merging of static and dynamic documents into a single formatted publication document. As a result, managing the reporting needs of a business enterprise that deals with large amounts of data spread across multiple data sources to be distributed to multiple users can be very time consuming. Users may be required to manually go through various interfaces or each individual report before selecting portions of the dynamic content in the reports for publication.
Accordingly, it would be desirable to provide techniques to address the shortcomings of existing report generation tools.